package com.dys.testdatetime13;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * @className: com.dys.testdatetime13.DateTimeOperation
 * @description: 日期时间的常见操作
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/09/03 下午9:01
 */
public class DateTimeOperation {
    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) {
        // testLocalDate();
        // testLocalTime();
        testLocalDateTime();
    }

    /**
     * JDK8日期相关操作
     */
    private static void testLocalDate() {
        // 1.创建指定日期
        LocalDate localDate = LocalDate.of(2024, 9, 1);
        System.out.println("获取指定日期：" + localDate);

        // 2.获取当前日期
        LocalDate now = LocalDate.now();
        System.out.println("当前日期为：" + now);

        // 3.根据LocalDate获取对应的日期信息
        System.out.println("年：" + now.getYear());
        System.out.println("月：" + now.getMonth().getValue());
        System.out.println("日：" + now.getDayOfMonth());
        System.out.println("星期：" + now.getDayOfWeek().getValue());
    }

    /**
     * JDK8时间相关操作
     */
    private static void testLocalTime() {
        // 1.获取指定时间
        LocalTime localTime = LocalTime.of(12, 7, 23, 222);
        System.out.println("指定日期为：" + localTime);

        // 2.获取当前时间
        LocalTime now = LocalTime.now();
        System.out.println("当前时间：" + now);

        // 3.获取时间信息
        System.out.println("时：" + now.getHour());
        System.out.println("分：" + now.getMinute());
        System.out.println("秒：" + now.getSecond());
        System.out.println("纳秒：" + now.getNano());
    }

    /**
     * JDK8日期时间相关操作
     */
    private static void testLocalDateTime() {
        // 1.获取指定日期时间
        LocalDateTime localDateTime = LocalDateTime.of(2024, 9, 1, 12, 23, 23);
        System.out.println("指定日期：" + localDateTime);

        // 2.获取当前日期时间
        LocalDateTime now = LocalDateTime.now();
        System.out.println("当前日期时间：" + now);

        // 3.获取日期时间相关信息
        System.out.println("年：" + now.getYear());
        System.out.println("月：" + now.getMonth().getValue());
        System.out.println("日：" + now.getDayOfMonth());
        System.out.println("时：" + now.getHour());
        System.out.println("分：" + now.getMinute());
        System.out.println("秒: " + now.getSecond());
        System.out.println("纳秒：" + now.getNano());
    }
}
